package org.example.domain.transaction.adapter.repository;


import org.example.domain.transaction.model.entity.PayCallbackEntity;
import org.example.domain.transaction.model.entity.RefundCallBackEntity;

/**
 * @author yinghuashen
 * @version 1.0
 * @description:
 * @date 2025/3/14 10:28
 */

public interface ITransactionRepository {

    boolean checkPayCallbackResultExisted(String outTradeNo);

    boolean checkInOrderExisted(String outTradeNo);

    boolean checkInOrderIsPendingPayment(String outTradeNo);

    void savePayCallbackResult(PayCallbackEntity payCallbackEntity);

    void saveSucceedPayCallbackMsg(PayCallbackEntity payCallbackEntity);

    boolean checkPaid(String outTradeNo);

    boolean executeRefund(String outTradeNo);

    boolean checkRefunded(String outTradeNo);

    void saveRefundCallbackMsg(RefundCallBackEntity refundCallBackEntity);
}
